OLE
Serialized Property Set Format
Persistent property
sets provide a way to store information within file system entities. It is
recommended that to create and manage them, you use the IPropertySetStorage
Property sets
are made up of a tagged section of values, with the section uniquely identified
by a Format Identifier (FMTID). Every property consists of a property identifier
and a type indicator that represents a value. Each value stored
in a property set has a unique property identifier that distinguishes the
property. The type indicator describes the representation of the data in the
value.
When you use
the IPropertySetStorage and IPropertyStorage interfaces, you do
not have to deal directly with the OLE serialized property set format
structure. However, for those who are interested, this Appendix describes this
format.
All data
elements within a property set are stored in Intel representation (that is, in
little-endian byte order).
OLE defines a
standard, serialized data format for property sets. When you are dealing
directly with the serialized format, and not with the interfaces, property sets
have the following characteristics:
Property sets allow for
different applications to create their own independent property sets to serve
the application s needs.
Property sets can be stored in
a single IStream
instance or in an IStorage
instance containing multiple streams. Indeed, in the abstract, property sets are
simply another data type that can be stored in many different forms of an
in-memory or on-disk storage. For recommended conventions on creating the string
name for the storage object, see the section Naming Property Sets later in
this appendix.
Property sets allow for a
dictionary of displayable names to be included to further describe the
contents. A set of conventions for choosing property names is recommended. For
more information on this optional dictionary, see Property ID 0 later in this
appendix.
The property
set stream is divided into three major parts:
Header
FORMATID/offset pair
Section containing the actual
property set values
The overall
length of the property set stream must be less than or equal to 256K. The
following sections of this chapter describe the individual components that make
up the property set data format, as shown in the previous figure.
Note Previous
versions of this document described extensions to the property set stream with
more than one section allowed, but that has been revised now to provide for one
section in the property stream. The one exception is the
DocumentSummaryInformation property set, described in the section The
DocumentSummaryInformation Property Set .